package com.ly.lypopupwindowdemo.database;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;

/**
 * Created by liying on 2017/10/27.
 */

public class MyDatabaseHelper extends SQLiteOpenHelper {

    /**
     * 需求是创建一个BookStore.db数据库，然后创建一张Book表。
     * 表中有id(主键)、作者、价格、页数、书名等列。
     * 这里就用到了SQL的建表语句。
     */

    public static final String CREATE_BOOK = "create table Book ("
            + "id integer primary key autoincrement, "
            + "author text, "
            + "price real, "
            + "pages integer,"
            + "name text)";


    /**
     * 想要再添加一个表（这时候涉及到升级数据库知识）
     */
    public static final String CREATE_CATEGORY = "create table Category ("
            + "id integer primary key autoincrement, "
            + "category_name text, "
            + "category_code integer)";


    private Context mContext;

    /**
     * 有两个构造方法可供选择，选择参数少的即可
     *
     * @param context
     * @param name    数据库名字，创建数据库时就是使用的这里指定的名字
     * @param factory 允许我们在查询数据的时候返回一个自定义的cursor,一般传入null
     * @param version 当前数据库的版本好，可用于对数据库进行升级操作
     */
    public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
        mContext = context;
    }


    /**
     * 创建数据库
     *
     * @param db
     */
    @Override
    public void onCreate(SQLiteDatabase db) {

        db.execSQL(CREATE_BOOK);
        db.execSQL(CREATE_CATEGORY);
        Toast.makeText(mContext, "创建成功", Toast.LENGTH_SHORT).show();//数据库创建成功的同时，成功创建了Book表
    }

    /**
     * 升级数据库
     *
     * @param db
     * @param oldVersion
     * @param newVersion
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        db.execSQL("drop table if exists Book");
        db.execSQL("drop table if exists Category");
        onCreate(db);
    }
}
